home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 1
/
Cream of the Crop 1.iso
/
SOUND
/
RAVELUTL.ARJ
/
CTOR.MAN
< prev
next >
Wrap
Text File
|
1989-01-07
|
7KB
|
178 lines
ctor RAVEL ctor
NNAAMMEE
ctor - CAKEWALK ASCII to Ravel translator
SSYYNNOOPPSSIISS
ccttoorr [-b][-n][-t][-s scale] [-p poff] <filename>
DDEESSCCRRIIPPTTIIOONN
ccttoorr is a program that translates from the CAKEWALK ASCII file
format to a subset of the Ravel music programming language.
CAKEWALK is a popular and affordable sequencer program available
from
Twelve Tone Systems
P.O. Box 226
Watertown, MA 02272
Like Ravel, it runs on ibm-pc's and compatibles and uses the
mpu-401. Rtoc and ctor are Ravel utilities that allow
translation between a subset of Ravel (actions) and "events" in
the CAKEWALK system. CAKEWALK provides translation utilities
called asc2cake and cake2asc that translate between CAKEWALK's
internal binary format and an external CAKEWALK ASCII event file
format. The CAKEWALK system also provides utilities for
translation from CAKEWALK format to other formats. As a result
Ravel + CAKEWALK can work together as a tool system, each taking
advantage of it's own strengths.
One might typically use ccttoorr to do the following: record a
track in cakewalk from a MIDI instrument. Save the ".wrk" file.
Translate the ".wrk" file with the cakewalk utility called
"cake2asc"; producing a ".asc" cakewalk ASCII file. Then use the
ccttoorr utility with appropriate switches to produce a Ravel
notelist. This can be edited with Ravel and put in a Ravel
piece.
Ctor takes an input file that is a ".asc" ASCII file format
as produced by the version 2 CAKEWALK utility called "cake2asc".
The input file is read and is sent to the console; i.e.,
standard output. It may be redirected to a file using a shell
redirect '>'; e.g.,
dos> ctor input.asc > output.ma
The resulting ".ma" file may be translated by "mc" and played
with "mos". Since it is an ASCII file, it can be edited with an
normal editor.
Ctor handles only note, patch (program change), continuous
January 7, 1989 page 1
controller, and pitch bend events at the present time. It
currently only looks at [STREAM] records and translates the
events found there. Each [STREAM] is made into a voicelist. More
than one can be handled. It will also look at the EndAllTime
variable set in the [VARS] section to determine how many events
maximum are to be found in the file. The last event in all
streams is set accordingly.
Note that switches are optional. This is denoted by placing
[] characters around the switch. The switch notation is "-",
which recognizes Unix conventions. Msdos switches will not work.
The program is looking for "-".
The [[--ss ssccaallee]] scale switch is used for scaling down event
times. CAKEWALK treats a quarter note as 120 events. Ravel
treats it as 24 events. As a result the translator will scale
down (divide) all events by a factor of 5. The scale switch may
be used to specify a different scaling factor (non-zero). A
scaling factor of 1 would preserve the CAKEWALK units, but of
course the piece would run slower at the same meter. Division
may cause loss of precision. All event times (elapsed events and
durations) are scaled.
The [[--pp ppooffff]] switch is optional and will set the pitch
bend offset to whatever non-zero value is given. The pitch bend
offset defaults to 64 if not set. The pitch bend range in MIDI
is a 14 bit unsigned number; in decimal this is 0 to 16383. A
centered wheel has the value 8192. Ravel uses a "pseudo-op"
called the "poff" or pitch bend offset that is multiplied
internally against the value used with the pitch bend action;
e.g.,
bend q 128
is the value for a centered wheel, since 128 * 64 = 8192. Note
that a pitch offset of 1 will leave the units unscaled. This may
be a useful thing to do when translating from CAKEWALK to Ravel,
since loss of precision may result from division.
The [[--nn]] switch will cause note constants to be translated
to the appropriate Ravel constant form; E.g., 60 = C. The key of
C is used.
Time constants are not translated unless the [[--tt]] switch is
given. Time constants are translated if and only if there is a
suitable Ravel constant; otherwise they are left in decimal.
If the [[--bb]] switch is given, pitch bend information is
removed from the streams. If a pitch bend has a non-zero event
time, this is translated into a tie. This is useful for removing
extraneous pitch bends that might be produced by a guitar
January 7, 1989 page 2
controller.
The translation program tracks Cakewalk events and spits
out measure information in a Ravel comment, whenever a 4/4
measure boundary is crossed. This information will appear as
follows:
# measure 1 (96,480,96,0,0)
The number in parenthesis refer to the following: 1. the elapsed
number of Ravel events so far., 2. the elapsed number of
Cakewalk events so far., 3. the number of Cakewalk events
divided by the scale factor; i.e., the TRUE number of Ravel
events which may not match the number of elapsed Ravel events
since it is subject to round-off error, and 4. the number of
Ravel events elapsed since we entered the measure; i.e.,
(Cakewalk events % 480) / scale. 5. the ravel slop factor.
In order to minimize roundoff error, excess cakewalk events
that would be lost to roundoff are retained and added to the
next event whenever their sum is greater than "scale" (5). This
seems to permit a reasonable translation of a cakewalk sequence
to a Ravel series of actions, since error is in effect averaged
out. The "ravel slop factor" represents the number of cakewalk
events that have not yet been added to a ravel event.
SSEEEE AALLSSOO
rtoc, mc, mos.
BBUUGGSS
Ctor is a new utility and has not been tested much at this
point. There are undoubtedly some flaws.
January 7, 1989 page 3